Slipstream 1.00 Viaccess Smartcard Эмулятор.

Руководство пользователя.

 

Оговорка.

 

Пожалуйста помните, что использование этого программного обеспечения для чего-нибудь другого чем образовательные цели, может быть незаконно в Вашей стране. Это программное обеспечение - результат личного образовательного проекта, не преследующего никакого  коммерческого интереса.

 

Краткий обзор прошивки. Особенности.

 

Предназначена для всех типов Fun карточек.

Совместима с наиболее распространёнными  Viaccess CAM-модулями.

Совместима с Funvxs1.2 форматом внешнего eeprom.

Поддерживает автоматический ввод операционных ключей (opkey) (автоабдейт)

Поддерживает ручной ввод операционных ключей (ремоут)

Имеет отображение различной (практически всего) информации на экране (осд)

Карточка может подражать множеству оригинальных карточек, т.е. содержит в  себе набор виртуальных карточек.

Multi-Issuer. (так называемое)

Multi-UA. (так называемое)

Lock Control Disable - обходит 24-ую блокировку смены PIN-кода, существующую на некоторых ресиверах.

Встроенная функция авто распознавания AVR.

Phoenix/Smart-mouse доступ к eeprom (Феникс handles).

Быстрая работа.

 

Slipstream совместим с Funvxs1.2 структурой eeprom. Следовательно, Вы редактируете eeprom Slipstream теми же самыми редакторами, которыми пользуетесь. Фактически, Ваш старый добрый Funvxs1.2 eeprom файл может использоваться без любых модификаций вместе с нашими Flash файлом (ss_flash100.hex) и внутренним eeprom (ss_intee.hex). В этом релизе представлены также несколько внешних eeprom, которые могут использоваться как матрицы. Как только Вы отредактировали внешние eeprom, вставив нужные issuerы, иденты провайдеров и мастер - ключи можно программировать карточку и смотреть TV.

 

Требования к железу.

 

Программное обеспечение предназначено для любой Fun карточки с 24C64 (8kByte) или большим внешнем eeprom. Slipstream поддерживает выбор типа протокола и PTS, чтобы работать с широким ассортиментом как встроенных Viaccess модулей, так и внешних CAM-модулей.

 

Конфигурирование Slipstream.

 

Ответы команд.

 

Ответы на FAC команды 87 04, и 87 06 можно изменять, что необходимо для некоторых ресиверов, требующих установки этих данных корректно. Ответы на команды консультации также изменяемы (CAAC ответ), и для некоторых ресиверов разные. Установка, которая работает в большинстве случаев (ядро внешнего eeprom) приведена на одной из вложенных матриц в hex файле.

 

Флаги конфигурации.

 

Флаг "LCD" в секции конфигурации вашего редактора активизирует функцию Lock Control Disable. Когда он стоит, то прошивка фактически обойдет 24-ые блокировки PIN-кода, существующие на некоторых ресиверах. Не ставьте флаг "LCD", если Ваш ресивер не показывает блокировку.

Другие два флага конфигурации "Control LEDS", и "Key LEDS" не имеют никакого значения в этой версии.

 

issuerы и providerы.

 

Позиция в прошивке может быть заполнена либо issuer или provider. Slipstream позволяет множеству issuer работать наряду с множеством provider на одной карточке. Конфигурация их должна следовать строго этим правилам:

 

Правила issuer. Первый issuer должен быть помещен в первую позицию. Все последующие  issuerы должны вписываться по порядку. Полубайт младшего разряда issuerа должен отразить его позицию. Так, первый issuer имеет младший разряд, имеет 0, второй issuer - 1, и т.д.

Issuer должен иметь форму FF ** **.

Правила provider. Первый provider должен быть помещен сразу после последнего issuerа. Любые дополнительные provider должны следовать в последовательном порядке. Полубайт младшего разряда provider равен одному из младших полубайтов issuerа чтобы связать его с issuerом, другими словами; укажите на позицию нужного issuerа. Provider не должен иметь форму FF ** **.

Для providerов апдейтящихся issuerом по UA/PPUA, вставьте МК и UA/PPUA в issuerа.

Для providerов апдейтящихся  в provider по UA/PPUA, вставьте МК и PPUA в provider.

Если требуется абдейт по UA, UA поставьте в поле UA issuerа. Всё сделано  как в оригинальной карточке. Только issuer может содержать UA, поле UA в объекте provider не работает.

 

Посмотрите любую оригинальную карточку - она имеет только один issuer с UA и один или несколько provider. Редактируя Slipstream eeprom, Вы поймёте, что числа младших полубайтов issuerов в первых позициях увеличиваются от 0 по порядку сверху вниз. Редактируйте providerы в следующей части прошивки по аналогии с issuerами. Полубайт младшего разряда provider связывает каждого из них с существующими issuerами. Slipstream действительно создаёт несколько виртуальных карточек в одной, каждая из которых работает в соответствии с реальной карточкой. Если Вы предпочитаете называть Виртуальные Карточки как Multi-Issuer Вам решать!

 

Чтобы привести младший разряд к ненулевому значению, Вы должны иметь редактор, позволяющий делать это, такой как FunProm или FunMagic. Picbined не будет работать, если ваш eeprom имеет ytcrjkmrj issuerов.

 

Пример с тремя issuerами.

 

Это реальная карточка, действующая как три виртуальных Viaccess карточки. Пример для Viasat с двумя issuerами FFF400 (обновления по UA в issuerе, используя mk05) и SVTEuropa с одним issuerом FFF450 (UA обновяет provider, используя mk00):

 

FFF400  Вставляем UA + mk05 - апдейт Ticket и Nordic

FFF401  Вставляем UA + mk05 - апдейт Europe

FFF452  Вставляем UA, апдейт SVT Европа

010C00

010C10  Используется 0ой  issuerа

010C20

010C30  Используется 0ой issuer

010C41  Используется 1ый issuer

009C02  Используется 2ой issuer. Вставьте mk00 здесь

 

Общее количество issuerов и provider в настоящее время ограничено до 23. Даже если их можно заполнить, то это не имеет смысла, ставить больше issuerов чем providerов.

 

Не забывайте ставить операционный ключ 08 для providerов, поскольку он используется как аварийный. Других примеры редактирования внешнего Eeprom смотрите в прилагаемых файлах.

 

Автоапдейт.

 

Slipstream поддерживает как автоапдейт на группу карт, так и на каждую отдельно.

Для  автоапдейта ключа группы, используется полный PPUA (SA + CustWp).

CustWp == 0 - не всегда, так как если установлен 0, она будет работать только если один клиент в группе получает апдейт. Это должно препятствовать карточке сталкиваться с операцией неправильного автоапдейта.

 

Ручной ввод ключей (ремоут).

 

Ручной ввод opkey реализован, используя меню смены PIN-кода вашего ресивера. Используемый формат – MultiMac с префиксом. Удостоверьтесь, что сначала введены 4 цифры префикса.

 

key08 = 1150

key09 = 1250

key0A =1350

key0B =1450

key0C =1550

key0D =1650

key0E =1750

key0F =1850

 

Затем вводятся 8 групп по четыре цифры. Если ваш ресивер имеет 24-ую блокировку PIN-кода, Вы должны использовать OSD.

 

OSD.

 

OSD реализован с помощью Subscription Information и лейбла providerа. Эти поля обмениваются информацией о opkeys, которые обрабатывает Slipstream. Как только лейбл соответствует активному providerу, определенным каналом выбранным на вашем ресивере, он будет заменен OSD информацией. Все другие поля лейблов providerов покажут лейблы такие, как отредактировано в Вашем eeprom файле. Управлять OSD можно с помощью

PurchaseThreshold/MaturityRating (в дальнейшем PT/MR). Пользуйтесь ими в зависимости от того, какой из них Вы предпочитаете или имеете в ресивере. Помимо управления OSD функциями PT/MR.может использоваться, чтобы ввести команды в Slipstream. OSD функции и команды объясняются ниже:

 

OSD функции

 

Чтобы воспользоваться OSD функциями, введите в PT/MR цифру соответствующую номеру функции. Ниже – список того, что отобразится в поле лейбла активного providerа для каждой OSD функции. Заданной по умолчанию функцией является  2.

 

функция 0: Лейбл. отображается лейбл providerа как отредактировано в eeprom файле.

Отображаетя для всех providerов.

функция 1: Версия. отображается название версии Slipstream, например "Slipstream 1.00"

функция 2: Ключ.  отображает текущий операционный ключ в HEX формате от последнего активного providerа. Следовательно, если активный канал на ресивере кодирован и открывается, ключ будет отображён. Если канал кодирован, но не открывается, будет отображена надпись "Key 0x unknown" (ключ 0x неизвестен), где x - HEX представление индекса ключа (8,9, A.., F).

функция 3: Объекты. отображает Идент issuerа и объект providerа, например "FFF400-010C30".

функции 8-15: Функции ключей. отображают определенный ключ, сохраненный в eeprom, выбранном номером функции. Ключ отображен независимо от того, если это – правильный он или нет. Пожалуйста заметьте, что все числа являются десятичными. Десятичные представлены как HEX:

8=8, 9=9,10=A, 11=B, 12=C, 13=D, 14=E и 15=F.

 

Для всех OSD функций кроме функции 0, в меню Subscription Information записывается и показывает хронологию и информацию о том, какие opkeys были изменены. Для последовательного отображения информации о том, когда какие ключи начали использоваться, сначала выполните форматирование секций eeprom, содержащих информацию о opkeys (формат метаданных). Это описано в Командах ниже.

 

Subscription Information меню для выбранного providerа будет содержать список из 8 массивов:

 

 

 

START DATE    STOP DATE    CLASS  THEME  LEVEL  

01/01/1980   01/01/1980 -               77       08

01/01/1980   01/01/1980 -               77       09

09/02/2003   10/02/2003 -               115     110

01/01/1980   01/01/1980 -               77       11

10/02/2003   01/01/1980 -               115     12

01/01/1980   01/01/1980 -               77       13

21/01/2003   24/01/2003 -               200     14

01/01/1980   01/01/1980 -               77       15

 

START DATE => дата, когда opkey был введён, либо автоапдейтом либо ремоутом.

STOP DATE => дата, когда opkey последний раз использовался.

Если START DATE = STOP DATE предыдущего ключа, это означает, что прописавшийся ключ - "следующий".

CLASS => не используется.

THEME => информация о том, как opkey был модифицирован.

Посмотрим на THEME как на "xyz":

 

OSD декодирование/кодирование информации.

 

x:  изменен с помощью:

0 => автоапдейт использующий SA адресацию,

1 => автоапдейт использующий UA адресацию,

2 => ручной ввод (ремоут)

y:  изменен с помощью:

0 => автоапдейт по providerу,

1 => автоапдейт по issuerу. Только для автоапдейта.

z: индекс используемого мастер - ключа. Только для автоапдейта.

 

LEVEL => Индекс opkey.

Если opkey находится в использовании активным каналом то 100 или 200 добавляется к индексу.

100 + индекс подразумевает, что ключ находится в использовании и он правильный.

200 + индекс подразумевает, что ключ находится в использовании, но он, сохраненный в карточке не рабочий.

 

Так, взглянув в пример выше с 8 массивами информационных данных, мы можем сказать что:

 

Ключ в использовании активным каналом - opkey 10, и это успешно используется для расшифровки изображения. STOP DATE говорит нам, что opkey 10 находится в использовании, так как сегодняшняя дата - 10:th февраля.

Opkey 10 был AU, пришёл 9го февраля, используя UA по issuerу с mkey 5.

Opkey 12 был AU, пришёл 10го февраля (сегодня) тем же макаром что и opkey 10.

START DATE opkey 12 = STOP DATE opkey 10, это означает, что opkey 12  - "следующий ключ" пока не используемый.

Opkey 14 был изменён ремоутом.

Некоторые ресиверы сортируют массивы на основании дат. Это означает что порядок в котором массивы представлены, может отличаться от этого примера. Не забудьте проверять значение LEVEL, чтобы не потерять последовательность.

 

Команды.

 

Чтобы посылать команду Slipstream, введите номер команды в меню PT/MT. Предварительно выбранная OSD функция не изменится.

функция 7: формат метаданных, сортирует всех providerов. Все даты будут отсортированы до 01/01/1980 и THEME установлены на 77.

Никаких другие команды нет в этой версии Slipstream.

 

Феникс handles.

 

Особенность Slipstream ещё в том, что специальные команды делают запись и чтение внешнего eeprom возможным, не перепрограммируя AVR controller с загрузчиком. Доступ к eeprom возможен через любой Феникс или Smartmouse, совместимые с ISO7816 interface.

 

Редактор, прилагающийся к Slipstream предлагает более быстрый путь к данным, по сравнению с редактором/программатором, имеющимся у Вас, который сначала пишет программу поверх AVR со специальным загрузчиком для шлюза. В Slipstream этот шлюз уже встроен.

 

Команды обращения к eeprom CB 25 и CB 26 описаны ниже.

Максимум можно делать длину L байта – 100 dec. Все цифры в HEX.

>> обозначает передачу данных в направлении к карточке.

<< обозначает передачу данных в направлении из карточки.

 

Read instruction:

>> CB 25 < 2 bytes of address > < 1 byte, length L >

<< 25

<< < L bytes of data returned from card >

<< 90 00

 

Write instruction:

>> CB 26 < 2 bytes of address > < 1 byte, length L >

<< 26

>> < L bytes of data transferred to card >

<< 90 00

 

Релиз.

 

1.00 релиз состоит из следующих файлов:

 

slipstream.htm             Это Руководство пользователя.

ss_flash100.hex           AVR flash HEX файл.

ss_intee.hex                 AVR внутренний eeprom HEX файл.

ss_extee_viasat2i.hex Внешний eeprom HEX файл - пример/матрица для Viasat с двумя issuerами.

ss_extee_senda.hex    Внешний eeprom HEX файл - пример/матрица для Senda

ss_extee_comhem_lcd.hex Внешний eeprom HEX файл - пример/матрица для Comhem.

Этому файлу активизировали LCD и попробовали по другому поставить providerы; потому что некоторые аппараты не отображают список providerов, кроме одного.

ss_extee_loaded.hex Внешний eeprom HEX файл - пример/матрица загружен большим количеством issuerов и providerов, в которых Вы будете нуждаться... Набор доступа к каналам Viasat.

 

Информация релиза.

 

Версия: 1.00,

Первый паблик вышел в марте 2003г.

 

Автор: Dauntless

 

Специальное спасибо: всем, кто способствовал - Вы знаете, кому!

 

Условия использования: не используйте программное обеспечение для других целей чем образовательные. Не переделывайте и не дополняйте релиз файлами без одобрения авторов. Нарушение любого из этих условий использования считают непочтительным.

 

Перевод на русский язык: Billy Kotus (kotus@pub.sovtest.ru) пишите письма.